package com.ruoyi.order.api.domain.bo;

import com.ruoyi.common.core.web.oldDomain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 在线商品测评业务对象 erp_seller_store_product_evaluation
 *
 * @author erp
 * @date 2023-06-26
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ErpSellerStoreProductEvaluationBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 在线商品id
     */
    @NotNull(message = "在线商品id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long sellerStoreProductId;

    /**
     * 公共产品id
     */
    @NotNull(message = "公共产品id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long collectProductId;

    /**
     * 店铺id
     */
    @NotNull(message = "店铺id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long storeId;

    private String sellerSignerFullname;

    /**
     * skucode
     */
    @NotBlank(message = "skucode不能为空", groups = { AddGroup.class, EditGroup.class })
    private String skuCode;

    @NotBlank(message = "skuPrice不能为空", groups = { AddGroup.class, EditGroup.class })
    private String skuPrice;

    /**
     * 刷单数量
     */
    @NotNull(message = "刷单数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long number;

    /**
     * 采购单价
     */
    @NotBlank(message = "采购单价不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unitPrice;

    /**
     * 采购总费用
     */
    @NotBlank(message = "采购总费用不能为空", groups = { AddGroup.class, EditGroup.class })
    private String totalPrices;

    /**
     * 汇率差
     */
    @NotBlank(message = "汇率差不能为空", groups = { AddGroup.class, EditGroup.class })
    private String erd;

    /**
     * 操作费
     */
    @NotBlank(message = "操作费不能为空", groups = { AddGroup.class, EditGroup.class })
    private String handlingFee;

    /**
     * 测评时间
     */
    @NotNull(message = "测评时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date evaluationTime;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 订单号
     */
    @NotNull(message = "订单号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orderId;

    /**
     * 运单号
     */
    @NotBlank(message = "运单号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String intlTrackingNo;

    /**
     * 状态
     */
    @NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer status;

    /**
     * 提示 给测评负责人看的
     */
    @NotBlank(message = "提示 给测评负责人看的不能为空", groups = { AddGroup.class, EditGroup.class })
    private String hint;

    /**
     * 乐观锁
     */
    @NotBlank(message = "乐观锁不能为空", groups = { AddGroup.class, EditGroup.class })
    private String revision;

    /**
     * 产品主图
     */
    private String productImg;
    /**
     * 产品链接
     */
    private String link;

    private String storeLink;
    /**
     * 下单国家
     */
    private String country;
    /**
     * 在线商品skuId
     */
    private Long productSkuId;

    /**
     * 测评单总金额
     */
    private String totalAmount;
    /**
     * 关键词
     */
    private String keyWord;
    /**
     * 优惠码
     */
    private String preferentialCode;
    /**
     * 留言
     */
    private String leaveInfo;
    /**
     * SkuSpec
     */
    private String skuSpec;
    /**
     * 类型（0：客户刷单；1：公司刷单；2：店铺自动刷单；3：单品自动刷单 新（ 0：手动刷单 1-公司刷单 11-自动公司刷单 其余对应自动化）
     */
    private Integer type;
    /**
     * 是否是公司刷单
     */
    private Integer isCompany;
    /**
     * 用户店铺
     */
    private List<Long> storeList;
}
